home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / UTIL / GripGrop 1.0.sit / GripGrop 1.0 / GripGrop・取扱説明書 < prev    next >
Text File  |  1996-05-26  |  13KB  |  351 lines

  1. GripGrop / 取扱説明書
  2. GripGrop Is Not Grep
  3.  
  4. Icon Design : Satomi "COCO" Nakano
  5. Program : Takeshi "OSTRA" Yoneki
  6. Copyright (C) 1996 Takeshi Yoneki / OSTRACISM CO.
  7. アイコンデザイン:中野 里美
  8. 作成:米木 武
  9. 著作:米木 武 / OSTRACISM CO. / 1996年
  10.  
  11. レポート宛先
  12. Nifty-Serve : GCC01675
  13.  
  14. 1996.04.20 グリグロって呼んでいいよ
  15. 1996.04.22 書きはじめる
  16. 1996.04.28 初版
  17.  
  18.  
  19. 1.はじめに
  20.  
  21.  「GripGrop」はシェアウエアです。
  22.  「GripGrop」を使って発生したいかなる問題も作成者は責任を持ちません。
  23.  「GripGrop」をBBSで再配布する場合、配布後でかまいませんのでメールをお願いします。CD-ROMで再配布する場合、事前に作成者宛に報告をお願いします。通常めったなことでは再配布を拒否することはありません。また、CD-ROMに収録した場合、そのCD-ROMを1部送付してくださるようお願いします。ただし強制はいたしません。
  24.  
  25.  「GripGrop」は単体ではフリーウエアです。ただし「Saneatsu Lite(實篤)」1.1以降、「HUNDOSHI-EDIT(褌・エディット)」1.6以降との組み合わせによりシェアウエアとなります。
  26.  
  27.  「GripGrop」1.0以降
  28.  「Saneatsu Lite(實篤)」1.1以降
  29.  「HUNDOSHI-EDIT(褌・エディット)」1.6以降
  30.  これらのうち2本以上を常用する場合、合計4000円となります。
  31.  
  32. 郵便振替
  33.  口座番号:00110-9-583020
  34.  名称  :米木 武 (よねきたけし)
  35.  振り込み用紙の通信欄にメールアドレスをお願いします。
  36.  
  37. 銀行振込
  38.  銀行  :第一勧業銀行 新宿西口支店
  39.  店番号 :062
  40.  口座番号:2121247
  41.  名前  :米木 武
  42.  カタカナ  :ヨネキ タケシ
  43.  できましたら振り込み後に振り込んだ旨メールをください。その際振り込んだ日付を必ずご記入下さい。
  44.  
  45. ニフティサーブ・シェアウエア送金代行システム
  46.  ニフティサーブの「シェアウエア送金代行システム,GO SWREG」で送金できます。
  47.  シェアウエア番号は3252です。
  48.  登録の都合上3本独立にシェアウエア番号がありますが、どれかひとつだけを使ってください。
  49.  
  50. 2.使用方法と利用環境について
  51.  
  52.  「GripGrop」はテキストファイルから文字列を探すというツールです。起動後、Search-Findメニューを選択すると検索ダイアログが表示されます。ここで検索すべき文字列や検索場所、ファイル名のマスク、サブディレクトリ検索の有無などを設定して「Do Search」ボタンを押します。すると検索が始まって、見つかった部分が一覧に表示されます。
  53.  「GripGrop」は汎用的に作られた検索ソフトです。単体で使っても効果はあるのですが、他のアプリケーション、特に「褌・エディット」と「實篤」とのコンビネーションが最適です。
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  「實篤」の検索メニューで「GripGrop」が起動し、検索結果をダブルクリックすると「實篤」の該当部分が表示されます。この場合「GripGrop」はまるで「實篤」の機能の一部のように動作します。
  65.  「褌・エディット」のSearch Text Filesメニューで「GripGrop」が起動し、検索結果をダブルクリックするとやはり該当部分が「褌・エディット」で表示されます(テキストのクリエータによっては別のエディタで表示されることもあります)。
  66.  該当部分の選択表示機能は現在「實篤」と「褌・エディット」のみが対応しています。
  67.  
  68. 3.バグレポートについて
  69.  
  70.  「GripGrop」作成にはC++を使って防衛的プログラミングを実践していますが、全く問題がないなどとはいいきれません。「GripGrop」の動作上の不具合が発見されたならば、ニフティサーブFMACPROフォーラムのDebug Folder会議室または作成者の米木宛のメールにてレポートをお願いします。
  71.  
  72. 4.特徴
  73.  
  74.  a.テキストファイルから単語を高速に検索します。
  75.  b.テキストを含むバイナリファイルも検索対象にできます。
  76.  c.検索ヒットした文書をエディタなどで開けます。
  77.  d.「實篤」と「褌・エディット」との連携動作ができます。
  78.  e.シンプルです。
  79.  
  80. 5.開発環境
  81.  
  82.  Macintosh IIcx + DayStar PowerCache 030 50MHz
  83.  漢字Talk 7.1 + MODE32 + 漢字Talk 7.5.1のFinder
  84.  (漢字Talk 7.5.xのIIcxにおける仮想記憶の致命的問題が解決しないため)
  85.  CodeWarrior 8 Bronze / C++
  86.  ResEdit 2.1.3
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97. 6.動作環境
  98.  
  99.  Macintosh Plus以降 + 漢字Talk 6.0.7以降
  100.  TSMTE(インライン追加機能)は1.3以降を推奨します。
  101.  ことえりは1.1以降を推奨します。
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110. 7.GripGrop Is Not Grep
  111.  
  112.  「GripGrop」はgrepではありません。正規表現に対応しないからです。何か似ているものを敢えてあげるとすればfgrepでしょうか。「GripGrop」は複数ファイルから固定した文字列を検索し、それを一覧表示します。また、その一覧から元の文書をApple EventのOpen Documentsを使って開きます。
  113.  「GripGrop」は茄子互換ログブラウザ「實篤」とのコンビネーションを考えて作成されました。「實篤」(1.1以降)の検索メニューを選択すると、実際に動き出すのは「GripGrop」です。検索をして、見つかった一覧をダブルクリックすると「實篤」で該当発言やメールが表示されます。この仕組もApple EventのOpen Documentsを使っています。ただし、独自に拡張している部分があります。
  114.  また「GripGrop」はテキストエディタの「褌・エディット」(1.6以降)とのコンビネーションも考えています。見つかった一覧をダブルクリックするときに「褌・エディット」を使うように設定すると(デフォルトはほぼそうです)、文書を開いて、見つかった文字列を選択状態にします。他のエディタでは選択状態にはなりません。
  115.  
  116.  ともかく文書を開くところは汎用に使えます。デフォルト設定では英語版MS-WORD文書も検索対象にされていますが、一覧のダブルクリックで起動するワープロは有限会社パスカルの「PascalWrite」になっています。「PascalWrite」で英語版MS-WORD文書をきちんと開けるようにするには、別途Claris Translator(Easy Openの一部)をシステムにインストールする必要があります。これはデベロッパ向けCD-ROMに入っている膨大な量の英語版MS-WORD文書を、少しでも楽に読みたいという作成者自身のニーズです。
  117.  残念なことにAcrobat文書はテキスト部分がスクランブルされているため、GripGropの検索ではヒットしません。
  118.  
  119.  「GripGrop」は「實篤」とのコンビネーションを実装した結果、ドラッグ&ドロップにも対応しています。検索したい文書またはフォルダを「GripGrop」アイコンにドラッグ&ドロップすると、それをデフォルトの設定として、検索ダイアログが表示されます。これは「實篤」と「GripGrop」間の検索依頼通知に、一般的なApple EventのOpen Documentsを使っているからです。
  120.  
  121.  「GripGrop」は文書を開くときに、その文書のクリエータ(文書を作成したアプリケーションの識別子)によって「何を使って開くか」を設定できます。基本的には「文書を作成したアプリケーション」ではなく、あくまで設定した少数のアプリケーションで開くという考え方となっています。これはファイルタイプ'TEXT'を作成するアプリケーションは各種エディタやワープロなど多岐にわたっており、使わない(または持っていない)エディタやワープロのクリエータを持つ文書を読むということが多く、また一般的だからです。
  122.  
  123.  「GripGrop」の検索アルゴリズムは改行コードに依存していません。ある種バイナリサーチに近いかもしれません。検索結果は行番号ではなく、ファイル上のバイト位置です。長い間マック上のテキスト検索ツールのありかたを考えてきましたが、これが現在の回答です。GripGropが扱うデータはボリューム名、ディレクトリID、ファイル名、ファイル上のバイト位置です。行番号を廃止したところがgrepではないゆえんです。
  124.  シンプルで高速に動作するアルゴリズムですので、検索エンジンそのものの高機能化は考えていません。正規表現なんてやったら10倍は遅くなることは容易に想像できます。
  125.  
  126. 8.メニュー
  127.  
  128. 8.1.File
  129.  
  130. Open Log File...
  131.  検索結果のログファイルを開きます。
  132.  ディスクの名前やディレクトリの構成、ファイルの内容が変化してない限り有効に使えます。
  133.  
  134. Save Log File...
  135.  検索結果のログファイルを保存します。
  136.  
  137. Get Info...
  138.  検索結果一覧で現在選択されている部分の詳しい情報ダイアログをポップアップします。
  139.  
  140. Launch Document
  141.  検索結果一覧で現在選択されている文書を開きます。
  142.  
  143. Quit
  144.  アプリケーションを終了します。
  145.  
  146. 8.2.Edit
  147.  
  148.  機能はありません。
  149.  
  150. 8.3.Search
  151.  
  152. Find...
  153.  検索ダイアログをポップアップします。
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171. Search String
  172.  検索する文字列を入力します。
  173. File Name ***
  174.  入力された文字列によるファイル名の検索対象条件を有効にします。
  175.  contains を含む
  176.  starts with で始まる
  177.  ends with で終る
  178.  is の項目
  179.  is not ではない項目
  180.  doesn't contain を含まない
  181. Select Directory
  182.  検索対象とするディレクトリ(フォルダ)を指定します。
  183.  リストボックスでフォルダを選択してダブルクリックするのでなく「Open(開く)」ボタンをクリックすると、そのフォルダを選択するか開くか決定できます。「Open(開く)」ボタンクリックに相当するキーボードでの操作はシフト+リターンです。
  184.  ファイルを選択して「Open(開く)」ボタンをクリックすると、そのファイルのあるフォルダが選択されます。
  185. Ignore Case
  186.  英文字の大文字と小文字を同じものとして検索します。
  187.  ウムラルトやダッシュなどのついたローマン文字や全角の英文字は対象外です。
  188. Search Sub-Directories
  189.  サブディレクトリも検索します。
  190. Ignore Delimiter
  191.  デリミタ文字(改行、空白、ハイフン、タブ)を挟んだ単語もヒットさせます。
  192.  通信のログを検索するときは単語が改行で分断されていることが多いので、このチェックをすると良いでしょう。
  193. Boyer-Moore Method (High Speed)
  194.  Boyer-Moore法を使った高速検索をします。
  195.  アルゴリズムの特性上、漢字一文字を検索させると漢字の後半と次の漢字の前半でもヒットしてしまいます。例えば「實」という字を検索させると「中央会議」といった単語でもヒットします。「實」はシフトJISコードで0x9B89ですが、「央」が0x899Bで「会」が0x89EFなので並ぶと0x9B89が存在することになります。十分に長い文字列を検索させるならば、誤ヒットは無視できるでしょう。
  196.  このスイッチは「Ignore Delimiter」と一緒には選択できません。
  197. Do Search
  198.  検索を開始します。
  199.  
  200. Launch Option...
  201.  起動に使うアプリケーションの登録ダイアログをポップアップします。
  202.  ここで設定していないアプリケーションで作成された文書はMisc Option...のMain Text Editorで設定されたエディタで開きます。
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218. クリエータの設定のデフォルト値
  219.  作成アプリ                  起動アプリ
  220.  茄子                        實篤
  221.  實篤                        實篤
  222.  褌・エディット              褌・エディット
  223.  CodeWarrior                 CodeWarrior
  224.  THINK Pascal                CodeWarrior
  225.  THINK Project Manager       CodeWarrior
  226.  MPW                         CodeWarrior
  227.  PascalWrite                 PascalWrite
  228.  英語版MS-WORD               PascalWrite
  229.  英語版MacWrite              PascalWrite
  230.  英語版MacWrite II           PascalWrite
  231.  NisusWriter                 NisusWriter
  232.  DocViewer                   DocViewer
  233.  
  234. File Type Option...
  235.  検索対象とするファイルタイプの登録ダイアログをポップアップします。
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250. ファイルタイプ設定のデフォルト値
  251.  テキスト
  252.  SimpleTextリードオンリー
  253.  PascalWrite
  254.  英語版MS-WORD
  255.  英語版MacWrite
  256.  英語版MacWrite II
  257.  DocViewer
  258.  
  259. Misc Option...
  260.  その他の設定のダイアログをポップアップします。
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279. Show Volume Name
  280.  検索結果一覧にボリューム名を表示します。
  281. Show Directory ID
  282.  検索結果一覧にディレクトリIDを表示します。
  283. Show File Name
  284.  検索結果一覧にファイル名を表示します。
  285. Show Position
  286.  検索結果一覧にファイル上の位置を表示します。
  287. Show Data
  288.  検索結果一覧に発見した文字列付近のデータを表示します。
  289. Main Text Editor
  290.  主に使うテキストエディタをクリエータで指定します。
  291. Don't Beep After Search
  292.  検索終了後ビープ音を出しません。
  293. Double Click on List
  294.  検索結果一覧のダブルクリックでの動作を指定します。
  295.  Launch Document 検索結果一覧のダブルクリックで文書を起動します。
  296.  Get Info 検索結果一覧のダブルクリックで詳しい情報を表示します。
  297.  
  298. 9.キーボードでの操作
  299.  
  300. ↓矢印
  301.  次の検索結果を選択します。
  302. ↑矢印
  303.  前の検索結果を選択します。
  304. リターン
  305.  検索結果のGetInfoダイアログを表示します。
  306. オブション+リターン
  307.  検索結果の文書を起動します。
  308.  
  309. 10.Apple Event
  310.  
  311.  「GripGrop」はOpen DocumentsのApple Eventを受け取り、その値をデフォルトとして検索ダイアログをポップアップさせます。Open DocumentsのApple Eventはファイルやフォルダのドラッグ&ドロップをした際にFinderから送られます。「實篤」や「褌・エディット」は直接「GripGrop」にOpen DocumentsのApple Eventを送ります。
  312.  フォルダをドラッグ&ドロップするとそのフォルダを検索対象とします。ファイル名マスクはオフになります。
  313.  ファイルをドラッグ&ドロップするとそのファイルのあるフォルダを検索対象とします。ファイル名マスクはドラッグ&ドロップしたファイルの名前でオンになります。
  314.  ドラッグ&ドロップの対象は最初に受け取った1つだけが有効になります。複数ファイルのドラッグ&ドロップは2つめ以降が無視されます。受け取る順序は名前順のようです。
  315.  「實篤」はファイルのドラッグ&ドロップに、「褌・エディット」はフォルダのドラッグ&ドロップにそれぞれ相当するOpen DocumentsのApple Eventを送ります。
  316.  「GripGrop」の受け取るOpen DocumentsのApple Eventは以下に述べる独自に拡張された部分はありません。
  317.  
  318.  「GripGrop」は一覧をダブルクリックされたらその文書を開くために、あらかじめ設定されているアプリケーションを起動し、Open DocumentsのApple Eventを送ります。「實篤」と「褌・エディット」以外のアプリケーションには独自に拡張されたOpen DocumentsのApple Eventは送りません。起動対象が「實篤」または「褌・エディット」のときは独自に拡張されたOpen DocumentsのApple Eventを送ります。
  319.  独自に拡張されたOpen DocumentsのApple Eventの概要は以下の通りです。
  320.  1.拡張パラメタとして選択開始位置と選択終了位置を付加します。
  321.  2.拡張パラメタがあったら2つめ以降の文書を無視します。
  322.  以下は詳細です。
  323. ----------
  324. 独自に拡張されたOpen Documents
  325.  
  326. イベントクラス:kCoreEventClass
  327. イベントID:kAEOpenDocuments
  328. 必須パラメタ:
  329. FSSpec List
  330.  キーワード:keyDirectObject
  331.  デスクリプタタイプ:typeAEList
  332.  データ:開くべきドキュメントを示すalias recordのリスト
  333. 拡張パラメタ(オプション)
  334. SelStart
  335.  キーワード:'selS'
  336.  デスクリプタタイプ:typeLongInteger
  337.  データ:セレクト開始位置
  338. SelEnd
  339.  キーワード:'selE'
  340.  デスクリプタタイプ:typeLongInteger
  341.  データ:セレクト終了位置
  342. ----------
  343.  これは暫定処置として定義しましたので、後には独立したイベントクラス、イベントIDを定義したいと考えています。
  344.  
  345. 11.Grep Is Not GripGrop
  346.  
  347.  「GripGrop Is Not Grep」というのは再帰的命名ではなく、ただの事実です。
  348.  「GripGrop」はgrepの機能とDrag and Dropの操作性を想像させるという条件で考えた名前です。もちろんflip-flop回路のもじりでもあります。
  349.  
  350. (P)1996 OSTRACISM CO. System Technology Development
  351.